package com.qqt.csr.order.vo.req;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.qqt.csr.common.idempotent.RequestKeyParam;
import com.qqt.csr.common.operalog.OperaLogSchema;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;

@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@JsonIgnoreProperties(ignoreUnknown = true)
@Schema(name = "UpdatedDesigneeWorkOrderReqVO", description = "变更工单处理人请求参数")
public class UpdatedDesigneeWorkOrderReqVO implements Serializable {
    @Serial
    private static final long serialVersionUID = -8988871947653372748L;

    @Schema(description = "工单id", requiredMode = Schema.RequiredMode.REQUIRED)
    @OperaLogSchema(desc = "工单id")
    @RequestKeyParam
    @NotNull(message = "工单id不能为空")
    private Long orderId;


    @Schema(description = "处理人id", requiredMode = Schema.RequiredMode.REQUIRED)
    @OperaLogSchema(desc = "处理人id")
    @RequestKeyParam
    @NotNull(message = "处理人id不能为空")
    private Long userId;

    @Schema(description = "分配原因")
    private String allocateCause;

    /**
     * 工单状态
     */
    @Schema(description = "当前工单状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "当前工单状态不能为空")
    private String status;

}
